﻿ @model IEnumerable<Dosimetria.Models.DataAnnotations_Classes.HCDDosimetro>


@{
    ViewBag.Title = "Reasignación Dosimetros";
}

@*Validación de usuario, para que no se pueda acceder a la página sin estar logueado *@
@if (@User.Identity.Name == "")
{
    Layout = null;
    <div style="width:800px; font-size:2em; height:500px; text-align:center; margin-top:100px" class="division">
    @Html.ActionLink("Ingrese como usuario válido...", "Index", "Home")
    </div>
}
else
{
<head>
  <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
  <link href="@Url.Content("~/Content/darkness-jquery-ui/css/dark-hive/jquery-ui-1.10.3.custom.css")" rel="stylesheet" type="text/css" />
  <link href="@Url.Content("~/Content/ui.multiselect.css")" rel="stylesheet" type="text/css" />
  <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
  <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
  <script src="@Url.Content("~/Scripts/jquery-ui-1.10.3.js")" type="text/javascript"></script>
  <script src="@Url.Content("~/Scripts/jquery.numeric.js")" type="text/javascript"></script>

 <script type="text/javascript">
     $(document).ready(function () {
         var cantEliminados = 0, cantTotal = 0;
         $(function () {
             $("#accordion").accordion();
         });

         //Verifica los elementos ocultos en el acordeon (argumento de la funcion),
         //en caso que no existan mas elementos simplemente se redireccionara en forma automatica a la pantalla anterior
         function verificarElementosOcultos($selector) {
             cantTotal = $selector.find("p").length;
             $selector.find("p").each(function (i) {
                 if ($(this).parent().find("h3#" + i).is(":visible") == false) {
                     cantEliminados++;
                 }
             });
             cantEliminados == cantTotal - 1 ? setTimeout($(location).attr('href', 'Create'), 30000) : cantEliminados = 0;
         }

         $(function () {
             $("p").each(function (i) {
                 $(this).find("#Funcionario" + i).click(function () {
                     $(this).val("");
                     $(this).parent().find("#rut" + i).val("");
                 });
                 $(this).find("#rut" + i).click(function () {
                     $(this).val("");
                     $(this).parent().find("#Funcionario" + i).val("");
                 });
             });
         });

         $(function () {
             $("p").each(function (i) {
                 $(this).find("#btnPosponer").click(function () {
                     var $pos = $(this).parent().attr('id');
                     var $posP = $pos - 1;
                     $(this).parent().toggle("slow");
                     $(this).parent().parent().find("h3#" + $posP).toggle("slow");
                     verificarElementosOcultos($(this).parent().parent());
                 });
                 $(this).find("#btnAceptar").click(function () {
                     var $pos = $(this).parent().attr('id');
                     //Obtengo valores de los input rut y funcionario
                     var valFuncionario = $(this).parent().find("#Funcionario" + $pos).val().trim();
                     var valRut = $(this).parent().find("#rut" + $pos).val().trim();
                     var codFuncionario = $(this).parent().find("#codFuncionario" + $pos).val().trim();
                     var codUnicoDosim = $(this).parent().find("#codUnicoDosim" + $pos).val().trim();
                     if (valFuncionario == "" || valRut == "") {
                         alert("Debe realizar la busqueda por rut o funcionario para realizar la reasignación");
                     }
                     else {
                         reasignacionFuncionario(codFuncionario, codUnicoDosim);
                         var $pos = $(this).parent().attr('id');
                         var $posP = $pos - 1;
                         $(this).parent().toggle("slow");
                         $(this).parent().parent().find("h3#" + $posP).toggle("slow");
                         verificarElementosOcultos($(this).parent().parent());
                     }
                 });
             });
         });

         //Funcion para realizar la reasignacion del funcionario
         function reasignacionFuncionario(codigoFuncionario, codUnicoDosim) {
             $.ajax({
                 type: "Post",
                 url: "reasignacionFuncionario",
                 dataType: "json",
                 data: {
                     codigoContrato: $('#codContrato').text(),
                     fechaEnvio: $('#fechaEnvio').text(),
                     codFuncionario: codigoFuncionario,
                     codigoUnicoDosimetro: codUnicoDosim
                 },
                 success: function (data) {

                 }
             });

         }

         $(function () {
             $("p").each(function (i) {
                 $(this).find("#rut" + i).numeric({ decimal: false, negative: false });
             });

         });

         var i = 1;
         $("#accordion > p").each(function () {
             $(this).find("#Funcionario" + i).autocomplete({
                 source: function (request, response) {
                     $.ajax({
                         type: "Post",
                         url: "getFuncionarioByContratoAndName?codigoContrato=" + $('#codContrato').text() + "&patron=" + request.term,
                         dataType: "json",
                         data: {
                             featureClass: "P",
                             style: "full",
                             maxRows: 12,
                             name_startsWith: request.term
                         },
                         success: function (data) {
                             response($.map(data.Result, function (item) {
                                 return {
                                     label: item.rut + " : " + item.nombre,
                                     value: item.nombre,
                                     rut: item.rut,
                                     id: item.id
                                 }
                             }));
                         }
                     });
                 },
                 minLength: 2,
                 select: function (event, ui) {
                     var pos = $(this).parent().attr('id');
                     $("#rut" + pos).val(ui.item.rut);
                     $("#codFuncionario" + pos).val(ui.item.id);
                 },
                 open: function () {
                     $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
                 },
                 close: function () {
                     $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
                 }
             });

             var input = $(this).find("#rut" + i).autocomplete({
                 source: function (request, response) {
                     $.ajax({
                         type: "Post",
                         url: "getFuncionarioByContratoAndRut?codigoContrato=" + $('#codContrato').text() + "&patron=" + request.term,
                         dataType: "json",
                         data: {
                             featureClass: "P",
                             style: "full",
                             maxRows: 12,
                             name_startsWith: request.term
                         },
                         success: function (data) {
                             response($.map(data.Result, function (item) {
                                 return {
                                     label: item.rut + " : " + item.nombre,
                                     value: item.rut,
                                     nombre: item.nombre,
                                     id: item.id
                                 }
                             }));
                         }
                     });
                 },
                 minLength: 2,
                 select: function (event, ui) {
                     var pos = $(this).parent().attr('id');
                     $("#Funcionario" + pos).val(ui.item.nombre);
                     $("#codFuncionario" + pos).val(ui.item.id);
                 },
                 open: function () {
                     $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
                 },
                 close: function () {
                     $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
                 }
             });
             i = i + 1;
         });
     });
  </script>
</head>
<body>
    <p>Sr. Usuario en estos minutos esta trabajando con el contrato: <b><label id="codContrato">@ViewBag.CodContrato</label>  <label id="fechaEnvio" hidden="true">@ViewBag.FechaEnvio</label></b> </p> <br />
    <label id="codFuncionario"></label>
     <div id="accordion">
        @{int num = 0; string nombre = "rut"; string id ="";}
        @foreach (var _hcdDosiemtro in Model)
        {
                <h3 id=@num>
                   Dosimetro @_hcdDosiemtro.NDosimetro
                    @{num++;}
                    @{id = nombre + num.ToString();}
                </h3>
                   
                <p id=@num>
                    @Html.Label("Rut:")&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp @Html.TextBox(@num.ToString(),"",new {id = @id}) <br /><br />
    
                    @Html.Label("Funcionario:")&nbsp  @Html.TextBox(@num.ToString(),"",new {id = "Funcionario" + @num.ToString()})  <br /> <br />
                    
                     @Html.TextBox(@num.ToString(), @_hcdDosiemtro.codigoUnicoDosim, new { id = "codUnicoDosim" + @num.ToString(), disabled="disabled", hidden=true })

                   @Html.TextBox(@num.ToString(), "", new { id = "codFuncionario" + @num.ToString(), hidden = false })
                    <button id="btnAceptar">Aceptar Cambios </button><button id="btnPosponer">Posponer </button> 
                </p>    
        }
      <br />
      <br />
    </div>  
</body>
}